{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "import seaborn as sn\n",
    "import matplotlib.pyplot as plt "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "nstant记录号 \n",
    "Dteday：日期 \n",
    "Season：季节（1=春天、2=夏天、3=秋天、4=冬天） \n",
    "yr：年份，(0: 2011, 1:2012) \n",
    "mnth：月份( 1 to 12) \n",
    "hr：小时 (0 to 23) （只在hour.csv有，作业忽略此字段） \n",
    "holiday：是否是节假日（0/1） \n",
    "weekday：星期中的哪天，取值为0～6 \n",
    "workingday：是否工作日（0/1） \n",
    "1=工作日 （是否为工作日，1为工作日，0为非周末或节假日） \n",
    "weathersit：天气（1：晴天，多云 ",
    "2：雾天，阴天 ",
    "3：小雪，小雨 ",
    "4：大雨，大雪，大雾） \n",
    "temp：气温摄氏度 \n",
    "atemp：体感温度 \n",
    "hum：湿度 \n",
    "windspeed：风速 \n",
    "casual：非注册用户贡献的骑行量（作业无需理会该字段） \n",
    "registered：注册用户贡献的骑行量（作业无需理会该字段） \n",
    "cnt：给定日期（天, day.csv）时间（每小时,hour.csv）总租车人数，响应变量y \n",
    "\n",
    "casual、registered和cnt三个特征均为要预测的y（cnt =casual+registered ），作业里只需对cnt进行预测。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 731 entries, 0 to 730\n",
      "Data columns (total 16 columns):\n",
      "instant       731 non-null int64\n",
      "dteday        731 non-null object\n",
      "season        731 non-null int64\n",
      "yr            731 non-null int64\n",
      "mnth          731 non-null int64\n",
      "holiday       731 non-null int64\n",
      "weekday       731 non-null int64\n",
      "workingday    731 non-null int64\n",
      "weathersit    731 non-null int64\n",
      "temp          731 non-null float64\n",
      "atemp         731 non-null float64\n",
      "hum           731 non-null float64\n",
      "windspeed     731 non-null float64\n",
      "casual        731 non-null int64\n",
      "registered    731 non-null int64\n",
      "cnt           731 non-null int64\n",
      "dtypes: float64(4), int64(11), object(1)\n",
      "memory usage: 91.5+ KB\n"
     ]
    }
   ],
   "source": [
    "train = pd.read_csv('day.csv')\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>2.496580</td>\n",
       "      <td>0.500684</td>\n",
       "      <td>6.519836</td>\n",
       "      <td>0.028728</td>\n",
       "      <td>2.997264</td>\n",
       "      <td>0.683995</td>\n",
       "      <td>1.395349</td>\n",
       "      <td>0.495385</td>\n",
       "      <td>0.474354</td>\n",
       "      <td>0.627894</td>\n",
       "      <td>0.190486</td>\n",
       "      <td>848.176471</td>\n",
       "      <td>3656.172367</td>\n",
       "      <td>4504.348837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>211.165812</td>\n",
       "      <td>1.110807</td>\n",
       "      <td>0.500342</td>\n",
       "      <td>3.451913</td>\n",
       "      <td>0.167155</td>\n",
       "      <td>2.004787</td>\n",
       "      <td>0.465233</td>\n",
       "      <td>0.544894</td>\n",
       "      <td>0.183051</td>\n",
       "      <td>0.162961</td>\n",
       "      <td>0.142429</td>\n",
       "      <td>0.077498</td>\n",
       "      <td>686.622488</td>\n",
       "      <td>1560.256377</td>\n",
       "      <td>1937.211452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>183.500000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.337083</td>\n",
       "      <td>0.337842</td>\n",
       "      <td>0.520000</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>315.500000</td>\n",
       "      <td>2497.000000</td>\n",
       "      <td>3152.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.498333</td>\n",
       "      <td>0.486733</td>\n",
       "      <td>0.626667</td>\n",
       "      <td>0.180975</td>\n",
       "      <td>713.000000</td>\n",
       "      <td>3662.000000</td>\n",
       "      <td>4548.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>548.500000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655417</td>\n",
       "      <td>0.608602</td>\n",
       "      <td>0.730209</td>\n",
       "      <td>0.233214</td>\n",
       "      <td>1096.000000</td>\n",
       "      <td>4776.500000</td>\n",
       "      <td>5956.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>3410.000000</td>\n",
       "      <td>6946.000000</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season          yr        mnth     holiday     weekday  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean   366.000000    2.496580    0.500684    6.519836    0.028728    2.997264   \n",
       "std    211.165812    1.110807    0.500342    3.451913    0.167155    2.004787   \n",
       "min      1.000000    1.000000    0.000000    1.000000    0.000000    0.000000   \n",
       "25%    183.500000    2.000000    0.000000    4.000000    0.000000    1.000000   \n",
       "50%    366.000000    3.000000    1.000000    7.000000    0.000000    3.000000   \n",
       "75%    548.500000    3.000000    1.000000   10.000000    0.000000    5.000000   \n",
       "max    731.000000    4.000000    1.000000   12.000000    1.000000    6.000000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean     0.683995    1.395349    0.495385    0.474354    0.627894    0.190486   \n",
       "std      0.465233    0.544894    0.183051    0.162961    0.142429    0.077498   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.000000    0.022392   \n",
       "25%      0.000000    1.000000    0.337083    0.337842    0.520000    0.134950   \n",
       "50%      1.000000    1.000000    0.498333    0.486733    0.626667    0.180975   \n",
       "75%      1.000000    2.000000    0.655417    0.608602    0.730209    0.233214   \n",
       "max      1.000000    3.000000    0.861667    0.840896    0.972500    0.507463   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   731.000000   731.000000   731.000000  \n",
       "mean    848.176471  3656.172367  4504.348837  \n",
       "std     686.622488  1560.256377  1937.211452  \n",
       "min       2.000000    20.000000    22.000000  \n",
       "25%     315.500000  2497.000000  3152.000000  \n",
       "50%     713.000000  3662.000000  4548.000000  \n",
       "75%    1096.000000  4776.500000  5956.000000  \n",
       "max    3410.000000  6946.000000  8714.000000  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 离散特征分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "season属性的不同取值和出现的次数\n",
      "3    188\n",
      "2    184\n",
      "1    181\n",
      "4    178\n",
      "Name: season, dtype: int64\n",
      "\n",
      "mnth属性的不同取值和出现的次数\n",
      "12    62\n",
      "10    62\n",
      "8     62\n",
      "7     62\n",
      "5     62\n",
      "3     62\n",
      "1     62\n",
      "11    60\n",
      "9     60\n",
      "6     60\n",
      "4     60\n",
      "2     57\n",
      "Name: mnth, dtype: int64\n",
      "\n",
      "weathersit属性的不同取值和出现的次数\n",
      "1    463\n",
      "2    247\n",
      "3     21\n",
      "Name: weathersit, dtype: int64\n",
      "\n",
      "weekday属性的不同取值和出现的次数\n",
      "6    105\n",
      "1    105\n",
      "0    105\n",
      "5    104\n",
      "4    104\n",
      "3    104\n",
      "2    104\n",
      "Name: weekday, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "categorical_features = ['season','mnth','weathersit','weekday']\n",
    "for col in categorical_features:\n",
    "    print('\\n%s属性的不同取值和出现的次数'%col)\n",
    "    print(train[col].value_counts())\n",
    "    train[col] = train[col].astype('object')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数字特征分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x0000015B340D6AC8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x0000015B3717BC18>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000015B371BA208>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x0000015B371E97B8>]],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "numerical_features = ['temp','atemp','hum','windspeed']\n",
    "train[numerical_features].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.特征与目标之间的关系"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1每年骑行量分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x15b3730a2e8>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sn.violinplot(data=train[['yr','cnt']],x='yr',y='cnt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2一年中每天的骑行量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Invalid RGBA argument: masked",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-7-26b0ecaae97c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[0msn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpointplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m \u001b[0mtrain\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'dayofyear'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'cnt'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'yr'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'dayofyear'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mhue\u001b[0m\u001b[1;33m=\u001b[0m \u001b[1;34m'yr'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'cnt'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      7\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'dayly distribution of counts'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mpointplot\u001b[1;34m(x, y, hue, data, order, hue_order, estimator, ci, n_boot, units, markers, linestyles, dodge, join, scale, orient, color, palette, errwidth, capsize, ax, **kwargs)\u001b[0m\n\u001b[0;32m   3338\u001b[0m         \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgca\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3339\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3340\u001b[1;33m     \u001b[0mplotter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   3341\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3342\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mplot\u001b[1;34m(self, ax)\u001b[0m\n\u001b[0;32m   1809\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1810\u001b[0m         \u001b[1;34m\"\"\"Make the plot.\"\"\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1811\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdraw_points\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1812\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mannotate_axes\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1813\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0morient\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m\"h\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\seaborn\\categorical.py\u001b[0m in \u001b[0;36mdraw_points\u001b[1;34m(self, ax)\u001b[0m\n\u001b[0;32m   1805\u001b[0m                            \u001b[0mc\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpoint_colors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0medgecolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpoint_colors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1806\u001b[0m                            \u001b[0mlinewidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmew\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmarker\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmarkersize\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1807\u001b[1;33m                            zorder=z)\n\u001b[0m\u001b[0;32m   1808\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1809\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\__init__.py\u001b[0m in \u001b[0;36minner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m   1587\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0minner\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1588\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mdata\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1589\u001b[1;33m             \u001b[1;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0mmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msanitize_sequence\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1590\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1591\u001b[0m         \u001b[0mbound\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnew_sig\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbind\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\axes\\_axes.py\u001b[0m in \u001b[0;36mscatter\u001b[1;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, plotnonfinite, **kwargs)\u001b[0m\n\u001b[0;32m   4488\u001b[0m                 \u001b[0moffsets\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moffsets\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   4489\u001b[0m                 \u001b[0mtransOffset\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'transform'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtransData\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 4490\u001b[1;33m                 \u001b[0malpha\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0malpha\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   4491\u001b[0m                 )\n\u001b[0;32m   4492\u001b[0m         \u001b[0mcollection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_transform\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmtransforms\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIdentityTransform\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\collections.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, paths, sizes, **kwargs)\u001b[0m\n\u001b[0;32m    881\u001b[0m         \"\"\"\n\u001b[0;32m    882\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 883\u001b[1;33m         \u001b[0mCollection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    884\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_paths\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpaths\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    885\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_sizes\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msizes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\collections.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, edgecolors, facecolors, linewidths, linestyles, capstyle, joinstyle, antialiaseds, offsets, transOffset, norm, cmap, pickradius, hatch, urls, offset_position, zorder, **kwargs)\u001b[0m\n\u001b[0;32m    126\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_hatch_color\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmcolors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_rgba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrcParams\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'hatch.color'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    127\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_facecolor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfacecolors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 128\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_edgecolor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0medgecolors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    129\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_linewidth\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlinewidths\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    130\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_linestyle\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlinestyles\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\collections.py\u001b[0m in \u001b[0;36mset_edgecolor\u001b[1;34m(self, c)\u001b[0m\n\u001b[0;32m    726\u001b[0m         \"\"\"\n\u001b[0;32m    727\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_original_edgecolor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 728\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_set_edgecolor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    729\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    730\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mset_alpha\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\collections.py\u001b[0m in \u001b[0;36m_set_edgecolor\u001b[1;34m(self, c)\u001b[0m\n\u001b[0;32m    710\u001b[0m         \u001b[1;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    711\u001b[0m             \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 712\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_edgecolors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmcolors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_rgba_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_alpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    713\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mset_hatch_color\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_edgecolors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    714\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_hatch_color\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_edgecolors\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\colors.py\u001b[0m in \u001b[0;36mto_rgba_array\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m    284\u001b[0m     \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mempty\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m4\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    285\u001b[0m     \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcc\u001b[0m \u001b[1;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 286\u001b[1;33m         \u001b[0mresult\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mto_rgba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    287\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    288\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\colors.py\u001b[0m in \u001b[0;36mto_rgba\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m    175\u001b[0m         \u001b[0mrgba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    176\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mrgba\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m  \u001b[1;31m# Suppress exception chaining of cache lookup failure.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 177\u001b[1;33m         \u001b[0mrgba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_to_rgba_no_colorcycle\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    178\u001b[0m         \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    179\u001b[0m             \u001b[0m_colors_full_map\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrgba\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\users\\buct-gcl-207\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\colors.py\u001b[0m in \u001b[0;36m_to_rgba_no_colorcycle\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m    236\u001b[0m         \u001b[1;31m# float)` and `np.array(...).astype(float)` all convert \"0.5\" to 0.5.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    237\u001b[0m         \u001b[1;31m# Test dimensionality to reject single floats.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 238\u001b[1;33m         \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Invalid RGBA argument: {!r}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0morig_c\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    239\u001b[0m     \u001b[1;31m# Return a tuple to prevent the cached value from being modified.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    240\u001b[0m     \u001b[0mc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: Invalid RGBA argument: masked"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import datetime\n",
    "train['date']=pd.to_datetime(train['dteday'])\n",
    "train['dayofyear']= train['date'].dt.dayofyear\n",
    "\n",
    "fig,ax = plt.subplots()\n",
    "sn.pointplot(data= train[['dayofyear','cnt','yr']],x='dayofyear',hue= 'yr',y='cnt',ax=ax)\n",
    "ax.set(title='dayly distribution of counts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3季节与骑行量的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x15b39aa3f28>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sn.violinplot(data=train[['season','cnt']],x='season',y='cnt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5, 1.0, 'Seasonly distribution of counts')]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax =plt.subplots()\n",
    "sn.barplot(data=train[['season','cnt']],x='season',y='cnt')\n",
    "ax.set(title='Seasonly distribution of counts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.4 月份与骑行量的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5, 1.0, 'Monthly distribution of counts')]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "sn.barplot(data=train[['mnth','cnt']],x='mnth',y='cnt')\n",
    "ax.set(title='Monthly distribution of counts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.5 天气和骑车数目的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x15b39aed518>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAShElEQVR4nO3de7Bd5Xnf8e8PMMbGOIIgGyyRiImVC24TTE6ADHUnBo/A5CLqQIuTMbKHjqZTkpJpExW3ndDY8YyDJ3HqtiGjFCbCdYypbygeT4kKeHBsY3MEhJvCoPiGBAfJETfHNbXg6R/7lb0lztF7pNHeW4fz/cycWWs96117P0d7pJ/WZa+VqkKSpP05YtINSJIOf4aFJKnLsJAkdRkWkqQuw0KS1HXUpBsYhRNPPLFWrFgx6TYkaUHZvHnzt6pq6WzrXpJhsWLFCqanpyfdhiQtKEm+Mdc6D0NJkroMC0lSl2EhSeoyLCRJXYaFJKnLsJAkdRkWkqQuw0KS1DXSsEjy9ST3J7k3yXSrnZBkU5JH2vT4Vk+SDyXZmuS+JGcMvc6aNv6RJGtG2fPhbt26dVx22WWsW7du0q1IWkTGsWfx5qo6vaqm2vJVwK1VtRK4tS0DvBVY2X7WAtfCIFyAq4GzgDOBq/cEzGI0MzPD9u3bmZmZmXQrkhaRSRyGWg1saPMbgIuG6jfUwJ3AkiQnA+cDm6pqV1U9CWwCLhh305K0mI06LAr4qySbk6xttddW1eMAbfqaVl8GPDq07bZWm6u+lyRrk0wnmd65c+ch/jUkaXEb9Y0Ez6mqx5K8BtiU5G/3Mzaz1Go/9b0LVeuB9QBTU1M+WFySDqGR7llU1WNtugP4FINzDk+0w0u06Y42fBtwytDmy4HH9lOXJI3JyMIiybFJjtszD6wCHgA2AnuuaFoD3NzmNwKXtauizgaeboepbgFWJTm+ndhe1WqSpDEZ5WGo1wKfSrLnff6iqv53kruAm5JcDnwTuKSN/yxwIbAV+A7wLoCq2pXkvcBdbdx7qmrXCPuWJO0jVS+9w/tTU1M134cf/ezv3DDibg6t4x78FEc+9wzPv/zVPPuGfzbpduZt8wcum3QLkjqSbB76msNe/Aa3JKnLsJAkdRkWkqQuw0KS1GVYSJK6DAtJUpdhIUnqGvW9oXSIvXD0sXtNJWkcDIsF5h9Wrpp0C5IWIQ9DSZK6DAtJUpdhIUnqMiwkSV2GhSSpy7CQJHUZFpKkLsNCktRlWEiSugwLSVKXYSFJ6jIsJEldhoUkqcuwkCR1eYtyaYzWrVvHzMwMJ510Etdcc82k25HmzbCQxmhmZobt27dPug3pgHkYSpLUZVhIkroMC0lSl2EhSeoyLCRJXYaFJKnLsJAkdY08LJIcmeSeJJ9py6cm+XKSR5J8LMnRrf7ytry1rV8x9BrvbvWHk5w/6p4lSXsbx5fyrgS2AK9uy38AfLCqbkzyp8DlwLVt+mRVvT7JpW3cv0hyGnAp8AbgdcD/SfLjVfX8GHrXYe6b7/nHk27hgOzedQJwFLt3fWPB9P4jv3v/pFvQYWCkexZJlgO/CPyPthzgXODjbcgG4KI2v7ot09af18avBm6squeq6mvAVuDMUfYtSdrbqA9D/TGwDnihLf8w8FRV7W7L24BlbX4Z8ChAW/90G//9+izbfF+StUmmk0zv3LnzUP8ekrSojSwskvwSsKOqNg+XZxlanXX72+YHhar1VTVVVVNLly494H4lSXMb5TmLc4BfSXIhcAyDcxZ/DCxJclTbe1gOPNbGbwNOAbYlOQr4IWDXUH2P4W0kSWMwsj2Lqnp3VS2vqhUMTlDfVlW/DtwOXNyGrQFubvMb2zJt/W1VVa1+abta6lRgJfCVUfUtSXqxSdyi/N8DNyb5feAe4LpWvw74cJKtDPYoLgWoqgeT3AQ8BOwGrvBKKEkar7GERVV9Dvhcm/8qs1zNVFXfBS6ZY/v3Ae8bXYeSpP3xG9ySpC7DQpLU5WNVpTE68ZgXgN1tKi0choU0Rr/9009NugXpoHgYSpLUZVhIkroMC0lSl2EhSeoyLCRJXYaFJKnLsJAkdRkWkqQuw0KS1GVYSJK6DAtJUpdhIUnqMiwkSV2GhSSpy7CQJHUZFpKkLsNCktRlWEiSugwLSVKXYSFJ6jIsJEldhoUkqcuwkCR1GRaSpC7DQpLUZVhIkroMC0lSl2EhSeoaWVgkOSbJV5L8TZIHk/xeq5+a5MtJHknysSRHt/rL2/LWtn7F0Gu9u9UfTnL+qHqWJM1ulHsWzwHnVtXPAKcDFyQ5G/gD4INVtRJ4Eri8jb8ceLKqXg98sI0jyWnApcAbgAuAP0ly5Aj7liTtY2RhUQPfbosvaz8FnAt8vNU3ABe1+dVtmbb+vCRp9Rur6rmq+hqwFThzVH1Lkl5spOcskhyZ5F5gB7AJ+Dvgqara3YZsA5a1+WXAowBt/dPADw/XZ9lm+L3WJplOMr1z585R/DqStGiNNCyq6vmqOh1YzmBv4KdmG9ammWPdXPV932t9VU1V1dTSpUsPtmVJ0izGcjVUVT0FfA44G1iS5Ki2ajnwWJvfBpwC0Nb/ELBruD7LNpKkMRjl1VBLkyxp868A3gJsAW4HLm7D1gA3t/mNbZm2/raqqla/tF0tdSqwEvjKqPqWJL3YUf0hB+1kYEO7cukI4Kaq+kySh4Abk/w+cA9wXRt/HfDhJFsZ7FFcClBVDya5CXgI2A1cUVXPj7BvSdI+RhYWVXUf8MZZ6l9llquZquq7wCVzvNb7gPcd6h4lSfPjN7glSV2GhSSpy7CQJHXNKyySXDmfmiTppWm+exZrZqm98xD2IUk6jO33aqgkbwd+DTg1ycahVccBfz/KxiRJh4/epbNfBB4HTgT+cKj+LHDfqJqSJB1e9hsWVfUN4BvAz4+nHUnS4Wi+J7jf1h5W9HSSZ5I8m+SZUTcnSTo8zPcb3NcAv1xVW0bZjCTp8DTfq6GeMCgkafGa757FdJKPAZ9m8LhUAKrqkyPpSpJ0WJlvWLwa+A6waqhWgGEhSYvAfMPiCODK9hAjkhzP3pfSSpJewuZ7zuKn9wQFQFU9ySy3H5ckvTTNNyyOaHsTACQ5gdE+OEmSdBiZ7z/4fwh8McnHGZyr+Of4MCJJWjTmFRZVdUOSaeBcIMDbquqhkXYmSTpszPtQUgsHA0KSFiEffiRJ6jIsJEldXtEkSfOwbt06ZmZmOOmkk7jmmmsm3c7YGRaSNA8zMzNs37590m1MjIehJEldhoUkqcuwkCR1GRaSpC7DQpLUZVhIkroMC0lSl2EhSeoyLCRJXSMLiySnJLk9yZYkDya5stVPSLIpySNtenyrJ8mHkmxNcl+SM4Zea00b/0iSNaPqWZI0u1HuWewG/l1V/RRwNnBFktOAq4Bbq2olcGtbBngrsLL9rAWuhe8/le9q4CzgTODq4af2SZJGb2RhUVWPV9Xdbf5ZYAuwDFgNbGjDNgAXtfnVwA01cCewJMnJwPnApqra1Z79vQm4YFR9S5JebCznLJKsAN4IfBl4bVU9DoNAAV7Thi0DHh3abFurzVXf9z3WJplOMr1z585D/StI0qI28rBI8irgE8BvVdUz+xs6S632U9+7ULW+qqaqamrp0qUH16wkaVYjDYskL2MQFB+pqk+28hPt8BJtuqPVtwGnDG2+HHhsP3VJ0piM8mqoANcBW6rqj4ZWbQT2XNG0Brh5qH5ZuyrqbODpdpjqFmBVkuPbie1VrSZJGpNRPvzoHOAdwP1J7m21/wC8H7gpyeXAN4FL2rrPAhcCW4HvAO8CqKpdSd4L3NXGvaeqdo2wb0nSPkYWFlX118x+vgHgvFnGF3DFHK91PXD9oetOknQg/Aa3JKnLsJAkdY3ynIUk7dc5//WcSbcwb0c/dTRHcASPPvXogur7C7/5hUPyOu5ZSJK6DAtJUpdhIUnqMiwkSV2GhSSpy7CQJHUZFpKkLsNCktRlWEiSugwLSVKXYSFJ6jIsJEldhoUkqcuwkCR1GRaSpC7DQpLUZVhIkroMC0lSl2EhSeryGdySNA/1yuIFXqBeWZNuZSIMC0mah++d871JtzBRHoaSJHUZFpKkLsNCktRlWEiSugwLSVKXYSFJ6jIsJEldhoUkqWtkYZHk+iQ7kjwwVDshyaYkj7Tp8a2eJB9KsjXJfUnOGNpmTRv/SJI1o+pXkjS3Ue5Z/DlwwT61q4Bbq2olcGtbBngrsLL9rAWuhUG4AFcDZwFnAlfvCRhJ0viMLCyq6g5g1z7l1cCGNr8BuGiofkMN3AksSXIycD6wqap2VdWTwCZeHECSpBEb9zmL11bV4wBt+ppWXwY8OjRuW6vNVX+RJGuTTCeZ3rlz5yFvXJIWs8PlBHdmqdV+6i8uVq2vqqmqmlq6dOkhbU6SFrtxh8UT7fASbbqj1bcBpwyNWw48tp+6JGmMxh0WG4E9VzStAW4eql/Wroo6G3i6Haa6BViV5Ph2YntVq0mSxmhkz7NI8lHgF4ATk2xjcFXT+4GbklwOfBO4pA3/LHAhsBX4DvAugKraleS9wF1t3Huqat+T5pKkERtZWFTV2+dYdd4sYwu4Yo7XuR64/hC2Jkk6QIfLCW5J0mHMsJAkdRkWkqQuw0KS1GVYSJK6DAtJUpdhIUnqMiwkSV2GhSSpy7CQJHUZFpKkLsNCktRlWEiSugwLSVKXYSFJ6jIsJEldhoUkqcuwkCR1GRaSpC7DQpLUZVhIkroMC0lSl2EhSeoyLCRJXYaFJKnLsJAkdRkWkqQuw0KS1GVYSJK6DAtJUpdhIUnqMiwkSV0LJiySXJDk4SRbk1w16X4kaTFZEGGR5EjgvwNvBU4D3p7ktMl2JUmLx4IIC+BMYGtVfbWq/h9wI7B6wj1J0qKRqpp0D11JLgYuqKp/2ZbfAZxVVb8xNGYtsLYt/gTw8NgbHZ8TgW9NugkdND+/heul/tn9aFUtnW3FUePu5CBlltpeKVdV64H142lnspJMV9XUpPvQwfHzW7gW82e3UA5DbQNOGVpeDjw2oV4kadFZKGFxF7AyyalJjgYuBTZOuCdJWjQWxGGoqtqd5DeAW4Ajgeur6sEJtzVJi+Jw20uYn9/CtWg/uwVxgluSNFkL5TCUJGmCDAtJUpdhsYAkuT7JjiQPTLoXHZgkpyS5PcmWJA8muXLSPWn+khyT5CtJ/qZ9fr836Z7GzXMWC0iSfwp8G7ihqv7RpPvR/CU5GTi5qu5OchywGbioqh6acGuahyQBjq2qbyd5GfDXwJVVdeeEWxsb9ywWkKq6A9g16T504Krq8aq6u80/C2wBlk22K81XDXy7Lb6s/Syq/2kbFtKYJVkBvBH48mQ70YFIcmSSe4EdwKaqWlSfn2EhjVGSVwGfAH6rqp6ZdD+av6p6vqpOZ3AHiTOTLKpDwYaFNCbtWPcngI9U1Scn3Y8OTlU9BXwOuGDCrYyVYSGNQTtBeh2wpar+aNL96MAkWZpkSZt/BfAW4G8n29V4GRYLSJKPAl8CfiLJtiSXT7onzds5wDuAc5Pc234unHRTmreTgduT3MfgXnWbquozE+5prLx0VpLU5Z6FJKnLsJAkdRkWkqQuw0KS1GVYSJK6DAtpRJK8M8nrhpa/nuTEEbzPZ5MsaT//+lC/vgSGhTRK7wRe1xs0H0nmfARyVV3YvlW8BDAsNBKGhdQkWZfk37T5Dya5rc2fl+R/JlmV5EtJ7k7yv9p9nkjyu0nuSvJAkvUZuBiYAj7SvoD3ivY2v9m2vz/JT7btj23PKrkryT1JVrf6O9v7/CXwV0lOTnJHe70Hkrypjduzx/J+4Mfa+g+M889OL32GhfQDdwBvavNTwKva/Zz+CXA/8J+At1TVGcA08G/b2P9WVT/XnjHyCuCXqurjbcyvV9XpVfV/29hvte2vBX671f4jcFtV/RzwZuADSY5t634eWFNV5wK/BtzSbmb3M8C9+/R/FfB37f1+55D8iUjNnLu20iK0GfjZ9nCi54C7GYTGm4CNwGnAFwa3eeJoBrdeAXhzknXAK4ETgAeBv5zjPfbcQHAz8LY2vwr4lSR7wuMY4Efa/Kaq2vMMk7uA61uAfbqq9g0LaWQMC6mpqu8l+TrwLuCLwH0M/qf/Y8DXGPzD/fbhbZIcA/wJMFVVjyb5zwz+sZ/Lc236PD/4+xfgV6vq4X1e+yzgH4b6u6M9LfEXgQ8n+UBV3XAwv6t0oDwMJe3tDgaHh+4APg/8KwaHe+4EzknyeoAkr0zy4/wgGL7VzmFcPPRazwLHzeM9b2FwLiPttd8426AkPwrsqKo/Y3AH2zP2GTLf95MOmGEh7e3zDO4w+qWqegL4LvD5qtrJ4Oqmj7Y7j94J/GS7CunPGJzT+DSDQ0V7/Dnwp/uc4J7Nexk8pvO+JA+05dn8AnBvknuAXwX+y/DKqvp7BofJHvAEtw417zorSepyz0KS1GVYSJK6DAtJUpdhIUnqMiwkSV2GhSSpy7CQJHX9f92f6VARlotLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax=plt.subplots()\n",
    "sn.barplot(data=train[['weathersit','cnt']],x='weathersit',y='cnt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.6 工作日与节假日分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x15b39cbec50>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,(ax1,ax2)=plt.subplots(ncols=2)\n",
    "sn.barplot(data=train,x='holiday',y='cnt',ax=ax1)\n",
    "sn.barplot(data=train,x='workingday',y='cnt',ax=ax2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.7 数值型特征和y之间的相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x15b39d45588>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "corrMatt = train[['temp','atemp','hum','windspeed','casual','registered','cnt']].corr()\n",
    "mask= np.array(corrMatt)\n",
    "mask[np.tril_indices_from(mask)]=False  #返回arr的下三角形的索引。\n",
    "sn.heatmap(corrMatt,mask=mask,vmax=0.8,square=True,annot=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "骑行量与湿度、风速负相关，与温度正相关"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.特征工程\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season_1</th>\n",
       "      <th>season_2</th>\n",
       "      <th>season_3</th>\n",
       "      <th>season_4</th>\n",
       "      <th>mnth_1</th>\n",
       "      <th>mnth_2</th>\n",
       "      <th>mnth_3</th>\n",
       "      <th>mnth_4</th>\n",
       "      <th>mnth_5</th>\n",
       "      <th>mnth_6</th>\n",
       "      <th>...</th>\n",
       "      <th>weathersit_1</th>\n",
       "      <th>weathersit_2</th>\n",
       "      <th>weathersit_3</th>\n",
       "      <th>weekday_0</th>\n",
       "      <th>weekday_1</th>\n",
       "      <th>weekday_2</th>\n",
       "      <th>weekday_3</th>\n",
       "      <th>weekday_4</th>\n",
       "      <th>weekday_5</th>\n",
       "      <th>weekday_6</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   season_1  season_2  season_3  season_4  mnth_1  mnth_2  mnth_3  mnth_4  \\\n",
       "0         1         0         0         0       1       0       0       0   \n",
       "1         1         0         0         0       1       0       0       0   \n",
       "2         1         0         0         0       1       0       0       0   \n",
       "3         1         0         0         0       1       0       0       0   \n",
       "4         1         0         0         0       1       0       0       0   \n",
       "\n",
       "   mnth_5  mnth_6  ...  weathersit_1  weathersit_2  weathersit_3  weekday_0  \\\n",
       "0       0       0  ...             0             1             0          0   \n",
       "1       0       0  ...             0             1             0          1   \n",
       "2       0       0  ...             1             0             0          0   \n",
       "3       0       0  ...             1             0             0          0   \n",
       "4       0       0  ...             1             0             0          0   \n",
       "\n",
       "   weekday_1  weekday_2  weekday_3  weekday_4  weekday_5  weekday_6  \n",
       "0          0          0          0          0          0          1  \n",
       "1          0          0          0          0          0          0  \n",
       "2          1          0          0          0          0          0  \n",
       "3          0          1          0          0          0          0  \n",
       "4          0          0          1          0          0          0  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "categorical_features = ['season','mnth','weathersit','weekday']\n",
    "for col in categorical_features:\n",
    "    train[col]=train[col].astype('object')\n",
    "    \n",
    "X_train_cat=train[categorical_features]\n",
    "X_train_cat=pd.get_dummies(X_train_cat)  #独热编码转化，针对类别型特征\n",
    "X_train_cat.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数字特征标准化 \n",
    "/MinMaxScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.355170</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.828620</td>\n",
       "      <td>0.284606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.379232</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.715771</td>\n",
       "      <td>0.466215</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.171000</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.449638</td>\n",
       "      <td>0.465740</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.607131</td>\n",
       "      <td>0.284297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.209120</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.449313</td>\n",
       "      <td>0.339143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       temp     atemp       hum  windspeed\n",
       "0  0.355170  0.373517  0.828620   0.284606\n",
       "1  0.379232  0.360541  0.715771   0.466215\n",
       "2  0.171000  0.144830  0.449638   0.465740\n",
       "3  0.175530  0.174649  0.607131   0.284297\n",
       "4  0.209120  0.197158  0.449313   0.339143"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "mn_X = MinMaxScaler() #生成转换器实例\n",
    "numerical_features = ['temp','atemp','hum','windspeed']\n",
    "temp = mn_X.fit_transform(train[numerical_features])#训练\n",
    "\n",
    "X_train_num = pd.DataFrame(data = temp,columns=numerical_features,index=train.index)\n",
    "X_train_num.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season_1</th>\n",
       "      <th>season_2</th>\n",
       "      <th>season_3</th>\n",
       "      <th>season_4</th>\n",
       "      <th>mnth_1</th>\n",
       "      <th>mnth_2</th>\n",
       "      <th>mnth_3</th>\n",
       "      <th>mnth_4</th>\n",
       "      <th>mnth_5</th>\n",
       "      <th>mnth_6</th>\n",
       "      <th>...</th>\n",
       "      <th>weekday_3</th>\n",
       "      <th>weekday_4</th>\n",
       "      <th>weekday_5</th>\n",
       "      <th>weekday_6</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.355170</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.828620</td>\n",
       "      <td>0.284606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.379232</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.715771</td>\n",
       "      <td>0.466215</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.171000</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.449638</td>\n",
       "      <td>0.465740</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.607131</td>\n",
       "      <td>0.284297</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.209120</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.449313</td>\n",
       "      <td>0.339143</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   season_1  season_2  season_3  season_4  mnth_1  mnth_2  mnth_3  mnth_4  \\\n",
       "0         1         0         0         0       1       0       0       0   \n",
       "1         1         0         0         0       1       0       0       0   \n",
       "2         1         0         0         0       1       0       0       0   \n",
       "3         1         0         0         0       1       0       0       0   \n",
       "4         1         0         0         0       1       0       0       0   \n",
       "\n",
       "   mnth_5  mnth_6  ...  weekday_3  weekday_4  weekday_5  weekday_6      temp  \\\n",
       "0       0       0  ...          0          0          0          1  0.355170   \n",
       "1       0       0  ...          0          0          0          0  0.379232   \n",
       "2       0       0  ...          0          0          0          0  0.171000   \n",
       "3       0       0  ...          0          0          0          0  0.175530   \n",
       "4       0       0  ...          1          0          0          0  0.209120   \n",
       "\n",
       "      atemp       hum  windspeed  holiday  workingday  \n",
       "0  0.373517  0.828620   0.284606        0           0  \n",
       "1  0.360541  0.715771   0.466215        0           0  \n",
       "2  0.144830  0.449638   0.465740        0           1  \n",
       "3  0.174649  0.607131   0.284297        0           1  \n",
       "4  0.197158  0.449313   0.339143        0           1  \n",
       "\n",
       "[5 rows x 32 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train = pd.concat([X_train_cat,X_train_num,train['holiday'],train['workingday']],axis=1,ignore_index=False)\n",
    "#concat函数是在pandas底下的方法，可以将数据根据不同的轴作简单的融合 \n",
    "#objs: series，dataframe或者是panel构成的序列lsit \n",
    "#axis： 需要合并链接的轴，0是行，1是列 \n",
    "\n",
    "\n",
    "X_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season_1</th>\n",
       "      <th>season_2</th>\n",
       "      <th>season_3</th>\n",
       "      <th>season_4</th>\n",
       "      <th>mnth_1</th>\n",
       "      <th>mnth_2</th>\n",
       "      <th>mnth_3</th>\n",
       "      <th>mnth_4</th>\n",
       "      <th>mnth_5</th>\n",
       "      <th>...</th>\n",
       "      <th>weekday_5</th>\n",
       "      <th>weekday_6</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>holiday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>yr</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.355170</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.828620</td>\n",
       "      <td>0.284606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.379232</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.715771</td>\n",
       "      <td>0.466215</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.171000</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.449638</td>\n",
       "      <td>0.465740</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.607131</td>\n",
       "      <td>0.284297</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.209120</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.449313</td>\n",
       "      <td>0.339143</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 35 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season_1  season_2  season_3  season_4  mnth_1  mnth_2  mnth_3  \\\n",
       "0        1         1         0         0         0       1       0       0   \n",
       "1        2         1         0         0         0       1       0       0   \n",
       "2        3         1         0         0         0       1       0       0   \n",
       "3        4         1         0         0         0       1       0       0   \n",
       "4        5         1         0         0         0       1       0       0   \n",
       "\n",
       "   mnth_4  mnth_5  ...  weekday_5  weekday_6      temp     atemp       hum  \\\n",
       "0       0       0  ...          0          1  0.355170  0.373517  0.828620   \n",
       "1       0       0  ...          0          0  0.379232  0.360541  0.715771   \n",
       "2       0       0  ...          0          0  0.171000  0.144830  0.449638   \n",
       "3       0       0  ...          0          0  0.175530  0.174649  0.607131   \n",
       "4       0       0  ...          0          0  0.209120  0.197158  0.449313   \n",
       "\n",
       "   windspeed  holiday  workingday  yr   cnt  \n",
       "0   0.284606        0           0   0   985  \n",
       "1   0.466215        0           0   0   801  \n",
       "2   0.465740        0           1   0  1349  \n",
       "3   0.284297        0           1   0  1562  \n",
       "4   0.339143        0           1   0  1600  \n",
       "\n",
       "[5 rows x 35 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "FE_train = pd.concat([train['instant'],X_train,train['yr'],train['cnt']],axis=1)\n",
    "FE_train.to_csv('FE_day.csv',index=False)\n",
    "FE_train.head()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
